import jieba
import pandas as pd
from configs.Config import Config


# 加载配置类对象
config = Config()
print(config.train_datapath)
print(config.test_datapath)
print(config.dev_datapath)


def process_data(datapath, processed_datapath):
    # 读取数据
    df_data = pd.read_csv(datapath, sep=',', header=None, names=['label', 'text'])
    df_data['text'] = df_data['text'].fillna('').astype(str)
    # print(df_data.head())
    # 进行分词预处理
    # apply功能是: 对输入文本进行结巴分词，获取前30个词并用空格连接
    # 把结巴分词拼接后结果作为新列拼接原数据集,最后保存
    df_data['words'] = df_data['text'].apply(lambda x: " ".join(jieba.lcut(x)[:30]))
    # # 删除空行
    # df_data.dropna(subset=['label'], inplace=True)
    print(df_data.head())
    print(df_data.shape)
    print(df_data.columns)
    # 保存数据
    df_data.to_csv(processed_datapath, sep='\t', index=False, header=True)


if __name__ == '__main__':
    # 保存处理后训练数据
    process_data(config.train_datapath, config.process_train_datapath)
    # 保存处理后测试数据
    process_data(config.test_datapath, config.process_test_datapath)
    # 保存处理后验证数据
    process_data(config.dev_datapath, config.process_dev_datapath)
